package com.mtconnect.dao;

import com.mtconnect.exception.DAOException;

import java.util.List;

/**
 * Created by Administrator on 2017/9/11.
 */
public interface Mapper<T> {

    /**
     * 没有subTyep属性
     *
     * @param tableName 数据库表名称
     * @param id        表中dataItemID 值
     * @param count     用户传入的值
     * @param from      用户传入的值
     * @return 填充好的实体类
     */
    List<T> nonSubTypeBySample(String tableName, String id, Long from, Long count) throws DAOException;

    /**
     * 有subType属性
     *
     * @param tableName 数据库表名称
     * @param id        表中dataItemID 值
     * @param count     用户传入的值
     * @param from      用户传入的值
     * @param subType   表中的subType值
     * @return 填充好的实体类
     */
    List<T> subTypeBySample(String tableName, String id, String subType, Long from, Long count) throws DAOException;

    /**
     * 没有subTyep属性
     *
     * @param tableName 数据库表名称
     * @param id        表中dataItemID 值
     * @param at     用户传入的值
     * @return 填充好的实体类
     */
    T nonSubTypeByCurrent(String tableName, String id, String at) throws DAOException;

    /**
     * 有subType属性
     *
     * @param tableName 数据库表名称
     * @param id        表中dataItemID 值
     * @param at     用户传入的值
     * @param subType   表中的subType值
     * @return 填充好的实体类
     */
    T subTypeByCurrent(String tableName, String id, String subType, String at) throws DAOException;

}
